﻿//2856. 删除数对后的最小数组长度
//给你一个下标从 0 开始的 非递减 整数数组 nums 。
//你可以执行以下操作任意次：
//选择 两个 下标 i 和 j ，满足 nums[i] < nums[j] 。
//将 nums 中下标在 i 和 j 处的元素删除。剩余元素按照原来的顺序组成新的数组，下标也重新从 0 开始编号。
//请你返回一个整数，表示执行以上操作任意次后（可以执行 0 次），nums 数组的 最小 数组长度。

class Solution {
public:
    int minLengthAfterRemovals(vector<int>& nums)
    {
        int n = nums.size();
        int x = nums[nums.size() / 2];
        int max_cnt = upper_bound(nums.begin(), nums.end(), x) - lower_bound(nums.begin(), nums.end(), x);
        return max(max_cnt * 2 - n, n % 2);
    }
};